#pragma once
#include <memory>
#include <vector>
#include "pfsm_state.h"
namespace axisgroup {
const double DRAG_NEAR_EPS = 5;
class AxisGroup;
class PFsmDrag : public PFsmState
{
public:
    PFsmDrag(Robot* grp);

private:
    int update_plan() override;
    int enter() override;
    void exit() override;
    void abort() override { return; }
    virtual bool is_stopping() override;
    bool is_plan_over() override;
    bool is_fdb_inpos() override;
    int check_tcp_vel_limit(double cur_tcp_vel);

private:
    bool exit_cmd_ = false;
};
}  // namespace axisgroup
